@邪恶贝壳
3年前 提问
1个回答

cs 端如何做渗透测试

房乐
3年前

1.cs上线

  • 首先开启监听cobalt->listeners,host和beacons都为cs服务端的ip地址

图片

  • 生成相应的windows木马,上传到靶机251中执行。

图片

选择对应的监听和木马格式

图片

最后将生成的木马传到靶机中,让靶机执行。
  • 机器上线成功

图片

2.部分cs命令利用

getsystem
logonpasswords  抓取密码
net view /domain  查询域列表
net time /domain  判断主域
net user /domain  查询域内用户

获取到内网域相应的信息

3.存活主机探测和获取凭证

  • 内网横向探测

    获取到一个 cs 的 beacon 后可以目标内网情况和端口开放情况,在 beacon 上右键 -> 目

    标 -> 选择 net view 或者 port scan:

图片

可以在菜单栏中,view视窗的targets选项中查看
  • 用 cs 的 hashdump 读内存密码:hashdump,用 mimikatz 读注册表密码:logonpasswords。获取相应账户凭证

    或者:

    右键->Access->Dump Hashes(需要Administrator权限)

    右键->Access->Run Mimikatz

图片

可以在凭证栏中查看获取的凭证

图片

图片

4.SMB Beacon和psexec传递(msf中的hash传递攻击)

在探测到其他两个内网机器开了445端口的前提下,可以使用SMB beacon获取。相当于在msf里面使用永恒之蓝获取shell。有两种方法

  • 直接派生,新建一个listener,pyload设置为beacon_smb

图片

在已有的 Beacon 上右键 Spawn(生成会话 / 派生),选择创建的 smb beacon 的 listerner:

选择后会反弹一个子会话,在 external 的 ip 后面会有一个链接的小图标:

图片

这就是派生的 SMB Beacon,当前没有连接,可以在主 Beacon 上用 link host 连接它,或者unlink host 断开

图片

就是说通过之前的beacon为跳板通过SMB去连接新beacon获取权限shell

可以在视图界面查看图形化连接情况

图片

  • 前面横向探测已经获取到内网内的其他 Targets 以及读取到的凭证信息,尝试使用 psexec

    模块登录其他主机,右键选择一台非域控主机 ROOT-TVI862UBEH 的 psexec 模块:

图片

  • 在弹出的窗口中选择使用 god.org 的 Administrator 的凭证信息,监听器选择之前创建的

    smb beacon,会话也选择对应的 smb beacon 的会话:

图片

  • 成功上线,并返回新的beacon

图片

5.另一种方式token 窃取

除了直接使用获取到的 hash 值,也可以直接窃取 GOD\Administrator 的 token 来登录其

他主机,选择 beacon 右键 -> 目标 -> 进程列表,选择 GOD\Administrator 的 token 盗取:

图片

找到相应账户的conhost.exe信息,获取其token

图片

再在之前获取的凭证中选择相应账户,勾选token选项就好了

图片

补充;

6.cs与MSF会话传递

  • MSF 创建监听自己的 ip 跟端口:

图片

  • CS 创建监听 listeners,Listeners 的 ip 为 msf 的 ip,端口为 msf 监听的端口(注:如果

    msf 是内网下的,则需要把端口映射到公网,或者使用 ngrok 等工具做流量转发)

  • 回到 cs 上,选中拿下的计算机会话,右键选中 spawn,然后在弹出来的框中选择刚刚创

    建的 listeners 监听器,然后执行。

  • msf收到会话